package com.example.meservice.domain.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 用户实体类
 * 对应数据库表 `user`，存储用户基础信息及状态数据
 *
 * @author czwa
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@TableName("user")
public class User {
    /** 用户唯一标识ID（主键） */
    @TableId
    private int id;
    /** 用户名（登录账号） */
    private String username;
    /** 登录密码（加密存储） */
    private String password;
    /** 性别（1=男，2=女，0=未设置） */
    private Integer gender;
    /** 手机号码（唯一标识） */
    private String phone;
    /** 头像图片URL */
    private String image;
    /** 账号创建时间 */
    private LocalDateTime createTime;
    /** 创建者ID（用于审计） */
    private Long creator;
    /** 最后更新时间 */
    private LocalDateTime updateTime;
    /** 最后更新者ID（用于审计） */
    private Long updater;
    /** 账户余额（单位：元） */
    private double balance;
    /** 积分（可用于兑换权益） */
    private double point;
    /** 经验值（用于计算用户等级） */
    private double exp;
    /** 用户等级（由经验值决定） */
    private int level;
    /** 账户状态（0=禁用，1=启用，2=冻结） */
    private int status;
}